Image sensors are used to sense light at an array of different pixel positions in order to capture an image representing a scene. Some examples of types of image sensors are complementary metal-oxide-semiconductor (CMOS) image sensors and charge-coupled device (CCD) image sensors. Colour filters may be used such that the different pixels represent intensities in different colour channels, such as Red (R), Green (G) or Blue (B) colour channels. A de-mosaicing process can be performed to determine a full set of colour values (or “component values”) for each pixel, e.g. by interpolation. Methods for performing de-mosaicing are known in the art, and result in a set of component values (e.g. RGB values) for each of the pixels.
An image captured by an image sensor may be displayed on a display, for example when a camera captures an image and displays the captured image on the display of the camera. Often the image sensor's gamut (which may be referred to as a “colour gamut”) exceeds the gamut of the display. The gamut of an image sensor defines the complete subset of colours which can be represented by the combination of the component values of a pixel captured by the image sensor. Similarly the gamut of a display defines the complete subset of colours with which a pixel can be displayed on the display. sRGB is a standard RGB colour space which uses the ITU-R BT.709 primaries to define the chromaticity of the Red, Green and Blue component values, and is suitable for use, for example, on displays. The colour filters used in an image sensor will determine the primaries of the colour space of the component values (e.g. RGB values) representing the pixels of an image captured by the image sensor.
Since the image sensor's gamut often exceeds the gamut of the display, a process of compressing the gamut of a pixel's component values may be used to bring the component values of a pixel captured by an image sensor into the gamut of the display. For example, component values which are outside of the display gamut may be clipped such that they lie within the display gamut. However, since clipping is only applied to component values which lie outside the range allowed by the display gamut, some component values of a pixel may be changed while others are not. This may result in poor hue accuracy and other perceptually detrimental artefacts in the resulting component values of the pixel. For example, clipping component values in this way could cause colour flatness (i.e. loss of detail) in areas of an image where all the colours are close to the edge of the allowed display gamut.
Another option for compressing the gamut of a pixel's component values to bring them into the gamut of the display is to scale the component values of the pixel by a scaling factor (which is less than one), such that all of the component values of the pixel are reduced by the same factor. In this way, the ratio between the different component values of the pixel is maintained. However, scaling will reduce the intensity of colours within the display gamut, which can detrimentally change pixel colours which were already within the display gamut before the scaling.
Therefore, there are problems with both clipping and scaling as methods for compressing the gamut of a pixel's component values to bring them into the gamut of the display.